Model Validation এবং Field Mapping

Web Development - এক্সটিজেএস (ExtJS) - ExtJS Models এবং Data Binding |
1

ExtJS-এ Model এবং Field এর জন্য বিভিন্ন বৈশিষ্ট্য (যেমন validation এবং field mapping) প্রদান করা হয়, যা ডেটার গঠন এবং সঠিকতা নিশ্চিত করতে সাহায্য করে। Model Validation ডেটা ভ্যালিডেশন এবং Field Mapping ফিল্ডের মান ম্যাপ করতে ব্যবহৃত হয়।

১. Model Validation

Model Validation একটি প্রক্রিয়া যার মাধ্যমে ডেটার সঠিকতা যাচাই করা হয়। ExtJS মডেলগুলিতে আপনি বিভিন্ন ধরনের ভ্যালিডেশন যুক্ত করতে পারেন যেমন: length, presence, email, format, inclusion, exclusion, ইত্যাদি।

Model Validation এর ব্যবহার:

  1. Presence Validation:

    • এটি চেক করে যে ফিল্ডের মান খালি নয়।

    উদাহরণ:

    Ext.define('MyApp.model.User', {
        extend: 'Ext.data.Model',
        fields: ['id', 'name', 'email'],
        validations: [
            { type: 'presence', field: 'name', message: 'Name is required' },
            { type: 'presence', field: 'email', message: 'Email is required' }
        ]
    });
    

    এখানে, name এবং email ফিল্ডের জন্য presence ভ্যালিডেশন দেওয়া হয়েছে, যা নিশ্চিত করে যে এগুলি খালি থাকবে না।

  2. Length Validation:

    • এটি একটি ফিল্ডের দৈর্ঘ্য নির্দিষ্ট পরিসরে থাকতে হবে তা নিশ্চিত করে।

    উদাহরণ:

    Ext.define('MyApp.model.User', {
        extend: 'Ext.data.Model',
        fields: ['id', 'name', 'email'],
        validations: [
            { type: 'length', field: 'name', min: 3, max: 50, message: 'Name must be between 3 and 50 characters' }
        ]
    });
    

    এখানে, name ফিল্ডের জন্য দৈর্ঘ্য ৩ থেকে ৫০ ক্যারেক্টারের মধ্যে হতে হবে।

  3. Email Validation:

    • এটি চেক করে যে ফিল্ডের মান একটি বৈধ ইমেইল ঠিকানা।

    উদাহরণ:

    Ext.define('MyApp.model.User', {
        extend: 'Ext.data.Model',
        fields: ['id', 'name', 'email'],
        validations: [
            { type: 'email', field: 'email', message: 'Invalid email address' }
        ]
    });
    

    এখানে, email ফিল্ডের জন্য email ভ্যালিডেশন করা হয়েছে, যা ইমেইল ঠিকানার ফর্ম্যাট চেক করবে।

  4. Custom Validation:

    • আপনি custom validation মেথডও তৈরি করতে পারেন, যেখানে আপনি আপনার নিজের ভ্যালিডেশন কন্ডিশন লিখতে পারেন।

    উদাহরণ:

    Ext.define('MyApp.model.User', {
        extend: 'Ext.data.Model',
        fields: ['id', 'name', 'email'],
        validations: [
            {
                type: 'exclusion',
                field: 'name',
                list: ['Admin', 'Superuser'],
                message: 'Name cannot be Admin or Superuser'
            }
        ]
    });
    

    এখানে, name ফিল্ডের জন্য exclusion ভ্যালিডেশন করা হয়েছে, যাতে Admin বা Superuser নাম ব্যবহার না করা যায়।


২. Field Mapping

Field Mapping হল ডেটার একটি ফিল্ডকে অন্য একটি ফিল্ডের মানের সাথে সম্পর্কিত বা ম্যাপ করা। এটি ডেটার বিভিন্ন ফরম্যাট বা রেপ্রেজেন্টেশন পরিবর্তন করতে ব্যবহৃত হয়। Field Mapping আপনাকে ডেটা পাঠানোর সময় বা গ্রহণ করার সময় ফিল্ডের মান পরিবর্তন করতে সহায়ক।

Field Mapping এর ব্যবহার:

  1. Field Mapping with Mapping Property:

    • আপনি একটি ফিল্ডের জন্য mapping প্রপার্টি ব্যবহার করে ডেটার মান কিভাবে রূপান্তর হবে তা নির্ধারণ করতে পারেন।

    উদাহরণ:

    Ext.define('MyApp.model.User', {
        extend: 'Ext.data.Model',
        fields: [
            { name: 'user_id', mapping: 'id' },
            { name: 'full_name', mapping: 'name' },
            { name: 'user_email', mapping: 'email' }
        ]
    });
    

    এখানে, user_id ফিল্ডটি id ফিল্ডের মানের সাথে ম্যাপ করা হয়েছে, full_name ফিল্ডটি name ফিল্ডের মানের সাথে এবং user_email ফিল্ডটি email ফিল্ডের মানের সাথে ম্যাপ করা হয়েছে।

  2. Field Mapping with Function:

    • আপনি function mapping ব্যবহার করতে পারেন যদি আপনাকে ফিল্ডের মান কিছু প্রক্রিয়া করে ম্যাপ করতে হয়।

    উদাহরণ:

    Ext.define('MyApp.model.User', {
        extend: 'Ext.data.Model',
        fields: [
            { name: 'user_id', mapping: function(data) { return data.id; } },
            { name: 'full_name', mapping: function(data) { return data.name.toUpperCase(); } },
            { name: 'user_email', mapping: 'email' }
        ]
    });
    

    এখানে, name ফিল্ডের মানকে uppercase তে রূপান্তর করা হচ্ছে full_name ফিল্ডে।


৩. Model Validation এবং Field Mapping ব্যবহার করার উদাহরণ

ধরা যাক, আমাদের একটি ব্যবহারকারী মডেল রয়েছে যার মধ্যে কিছু ভ্যালিডেশন এবং ফিল্ড ম্যাপিং করা হয়েছে:

Ext.define('MyApp.model.User', {
    extend: 'Ext.data.Model',
    fields: [
        { name: 'user_id', mapping: 'id' },
        { name: 'full_name', mapping: 'name' },
        { name: 'user_email', mapping: 'email' }
    ],
    validations: [
        { type: 'presence', field: 'full_name', message: 'Full Name is required' },
        { type: 'email', field: 'user_email', message: 'Invalid email address' },
        { type: 'length', field: 'full_name', min: 3, max: 50, message: 'Full Name must be between 3 and 50 characters' }
    ]
});

এখানে:

  • user_id ফিল্ডটি id এর সাথে ম্যাপ করা হয়েছে।
  • full_name ফিল্ডটি name এর সাথে ম্যাপ করা হয়েছে এবং সেখানে length এবং presence ভ্যালিডেশন রয়েছে।
  • user_email ফিল্ডটি email এর সাথে ম্যাপ করা হয়েছে এবং email ভ্যালিডেশন রয়েছে।

সারাংশ

  1. Model Validation: ExtJS মডেল ভ্যালিডেশন ডেটার সঠিকতা নিশ্চিত করার জন্য ব্যবহৃত হয়। বিভিন্ন ধরনের ভ্যালিডেশন যেমন presence, length, email, inclusion, ইত্যাদি ব্যবহার করা যায়।
  2. Field Mapping: এটি ডেটার ফিল্ডগুলিকে ম্যাপ করার জন্য ব্যবহৃত হয়, যা ডেটার রূপান্তর এবং প্রক্রিয়াকরণের জন্য সাহায্য করে। আপনি mapping প্রপার্টি বা function mapping ব্যবহার করতে পারেন।

এই দুটি ফিচার ExtJS অ্যাপ্লিকেশন ডেভেলপমেন্টে ডেটার সঠিকতা এবং কার্যকারিতা নিশ্চিত করতে গুরুত্বপূর্ণ ভূমিকা পালন করে।

Content added By
Promotion